<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        .title{
            line-height: 40px;
            font-weight: bold;
            text-align: center;
        }
        .list .item{
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin: 20px;
        }
        .list .item img{
            width: 60px;

        }
    </style>
</head>

<body>
    <!-- 由于Vue实例对象挂载到#app表示的dom节点上，所以Vue实例对象身上定义的数据和方法就可以在这个dom节点内部使用（在dom节点外部不可以使用） -->
    <div id="app">
        <div class="title">任务列表</div>
        <div class="list">
            <!-- 列表渲染，使用data中定义的数据 渲染出多个任务，形成一个列表 -->
            <!-- 列表渲染，使用vueJS提供的指令v-for，也可以配合key属性一起使用 -->
            <!-- 列表渲染，v-for="(item,index) in tasklist" -->

            <!-- {{ 表达式 或者 变量 }}  也叫作插值表达式（双大括号），会解析/计算内部表达式或变量的值 ，只能用在标签的内容区-->
            <!-- 属性值的绑定，当属性值中有变量，需要计算时，属性名称前必须有v-bind: 否则属性值无法正常解析 -->
            <!-- v-bind:属性名="属性值"，属性值可以是变量，也可以是表达式 -->
            <!-- 如果属性值中没有变量，也不需要计算，就是固定的字符串，则不需要在属性名前面添加v-bind: -->
            <div class="item" v-for="(item,index) in tasklist" v-bind:key="index">
                <div class="left">
                    <img v-bind:src="item.pic" alt="">
                </div>
                <div class="middle">
                    <div class="name">{{ item.name }}</div>
                    <div class="desc">{{ item.desc }}</div>
                </div>
                <div class="right">
                    <button>{{ item.status == 1 ? '去完成' : item.status == 2 ? '领取' : '已领取' }} </button>
                </div>
            </div>
        </div>
    </div>
</body>

</html>


<!-- 这个js文件对外暴露了一个Vue构造函数，我们可以使用Vue构造函数实例化Vue对象 -->
<script src="./vue-2.5.21.js"></script>
<script>
    //实例化Vue对象
    let v = new Vue({
        //这个位置放置Vuejs规定的一些选项（这些选项的名字是固定的，另外这些选项是可选的）
        el: '#app',  //el 表示Vue实例挂载的dom节点
        data: {
            tasklist: [
                { id: 1, pic:'./1.jpeg',name: '咪咕视频送流量', desc: '每月可领500MB流量', status: 1 },
                { id: 2, pic:'./1.jpeg',name: '咪咕视频送福利', desc: '每月可领800MB流量', status: 2 },
                { id: 3, pic:'./1.jpeg',name: '咪咕视频送套餐折扣券', desc: '每月可领1500MB流量', status: 3 },
                { id: 4, pic:'./1.jpeg',name: '咪咕视频送超级秒杀', desc: '每月可领5500MB流量', status: 1 },
            ]
        }, //data 定义响应式数据，data的类型可以是对象，也可以是函数
        //data:function(){ return {} } //使用函数的写法，可以在实例化对象时生成一个新的数据
        computed: {}, //computed 定义计算属性
        watch: {}, //watch定义数据监听
        methods: {},//methods 定义方法（函数）
        filters: {}, //filters定义过滤器
        directives: {},//directives定义自定义指令
        components: {}, //components 注册局部组件

    })



    //我们接下来使用vueJS的声明式编程语法，实现<数据驱动视图>.

</script>